From: Stefano Stabellini Date: Wed, 1 May 2013 19:32:27 +0000 (+0100) Subject: xen: move VCPUOP_register_runstate_memory_area to common code X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~6871 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=8968bafa3170d46d21d8f6ee2d0856f270c864ad;p=xen.git xen: move VCPUOP_register_runstate_memory_area to common code Signed-off-by: Stefano Stabellini Acked-by: Keir Fraser --- diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 0228db2ad9..161d1b34d7 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -966,34 +966,6 @@ arch_do_vcpu_op( switch ( cmd ) { - case VCPUOP_register_runstate_memory_area: - { - struct vcpu_register_runstate_memory_area area; - struct vcpu_runstate_info runstate; - - rc = -EFAULT; - if ( copy_from_guest(&area, arg, 1) ) - break; - - if ( !guest_handle_okay(area.addr.h, 1) ) - break; - - rc = 0; - runstate_guest(v) = area.addr.h; - - if ( v == current ) - { - __copy_to_guest(runstate_guest(v), &v->runstate, 1); - } - else - { - vcpu_runstate_get(v, &runstate); - __copy_to_guest(runstate_guest(v), &runstate, 1); - } - - break; - } - /* * XXX Disable for 4.0.0: __update_vcpu_system_time() writes to the given * virtual address even when running in another domain's address space. diff --git a/xen/common/domain.c b/xen/common/domain.c index d0b2f2eab0..fac3470a33 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -1105,6 +1105,34 @@ long do_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg) break; } + case VCPUOP_register_runstate_memory_area: + { + struct vcpu_register_runstate_memory_area area; + struct vcpu_runstate_info runstate; + + rc = -EFAULT; + if ( copy_from_guest(&area, arg, 1) ) + break; + + if ( !guest_handle_okay(area.addr.h, 1) ) + break; + + rc = 0; + runstate_guest(v) = area.addr.h; + + if ( v == current ) + { + __copy_to_guest(runstate_guest(v), &v->runstate, 1); + } + else + { + vcpu_runstate_get(v, &runstate); + __copy_to_guest(runstate_guest(v), &runstate, 1); + } + + break; + } + #ifdef VCPU_TRAP_NMI case VCPUOP_send_nmi: if ( !guest_handle_is_null(arg) )